System and method for avoiding stall of an h-arq reordering buffer in a receiver

ABSTRACT

A system and method for avoiding stall of an H-ARQ reordering buffer in a receiver is disclosed. The present invention reduces the latency of the H-ARQ reordering buffers within a receiver and uses a Last-In-First-Out (LIFO) policy for loading the transmitting H-ARQ processors. The LIFO loading policy increases the probability that the UE will be able to determine at an earlier time whether the missed TSN is due to delay in retransmission or due to the release of a transmission by the Node B by reading the new H-ARQ processor identifier (ID).

CROSS REFERENCE TO RELATED APPLICATION

[0001] This application claims priority from U.S. provisional application No. 60/392,403, filed on Jun. 28, 2002 which is incorporated by reference as if fully set forth.

FIELD OF INVENTION

[0002] The present invention is related to communication systems which use a hybrid automatic repeat request (H-ARQ) scheme for improving quality of service, (e.g. system throughput). More particularly, the present invention is directed to a system and method for reducing the latency of the H-ARQ reordering buffers within a receiver.

BACKGROUND

[0003] H-ARQ processing is a scheme comprising multiple parallel ARQ processors whereby each processor repeatedly transmits several sequential attempts of a data block until the transmission is successful to ensure that each block of data is received without an error. Referring to FIG. 1, a simplified flow diagram of the data flow between a Node B (shown at the bottom of FIG. 1) and a UE (shown at the top of FIG. 1) is shown. Protocol data units from higher level processing are scheduled and may be multiplexed into one data block. A data block can only contain protocol data units of higher layers of the same priority. A unique Transmission Sequence Number (TSN) is assigned to each data block by the scheduler. The higher layers may provide a plurality of streams of different priorities of protocol data units, each priority having a sequence of TSNs. The scheduler then dispatches the blocks to the plurality of H-ARQ processors P1 _(B)-P5 _(B). Each H-ARQ processor P1 _(B)-P5 _(B) is responsible for processing a single block of data at a time. For example, as shown in FIG. 1, the Priority 1 protocol data units comprise a sequence illustrated as B1 ₁-B1 _(N). Likewise, the Priority 2 protocol data units are sequenced from B2 ₁-B2 _(N) and the Priority 3 protocol data units are sequenced from B3 ₁-B3 _(N). These protocol data units are scheduled (and may be multiplexed) and affixed a TSN by the common scheduler. For purposes of describing the invention, we assume one protocol data unit for one data block. After a data block is scheduled to be processed by a particular processor P1 _(B)-P5 _(B), each data block is associated with a processor identifier, which identifies the processor P1 _(B)-P5 _(B) that processes the data block. It should be understood by those of skill in the art that this association may include “tagging” the data block or may comprise control channel signaling, whereby a control channel provides signaling from the Node B to the UE that a particular data block is associated with a particular transmit processor P1 _(B)-P5 _(B). The data blocks are then input into the scheduled Node B H-ARQ processors P1 _(B)-P5 _(B) which receive and process each data block. Each Node B H-ARQ processor P1 _(B)-P5 _(B) corresponds to an H-ARQ processor P1 _(UE)-P5 _(UE) within the UE. Accordingly, the first H-ARQ processor P1 _(B) in the Node B communicates with the first H-ARQ processor P1 _(UE) in the UE. Likewise, the second H-ARQ processor P2 _(B) in the Node B communicates with the second H-ARQ processor P2 _(UE) in the UE, and so on for the remaining H-ARQ processors P3 _(B)-P5 _(B) in the Node B and their counterpart H-ARQ processors P3 _(UE)-P5 _(UE) respectively within the UE. The H-ARQ processes are timely multiplexed onto the air interface and there is only one transmission of an H-ARQ on the air interface at one time.

[0004] For example, taking the first pair of communicating H-ARQ processors P1 _(B) and P1 _(UE), the H-ARQ processor P1 _(B) processes a data block, for example B1 ₁, and forwards it for multiplexing and transmitting it over the air interface. When this data block B1 ₁ is received by the first H-ARQ processor P1 _(UE), the processor P1 _(UE) determines whether or not it was received without error. If the data block B1 ₁ was received without error, the first H-ARQ processor P1 _(UE) transmits an acknowledgment (ACK) to indicate to the transmitting H-ARQ processor P1 _(B) that it has been successfully received. On the contrary, if there is an error in the received data block B1 ₁, the receiving H-ARQ processor P1 _(UE) transmits a negative acknowledgment (NACK) to the transmitting H-ARQ processor P1 _(B). This process continues until the transmitting processor P1 _(B) receives an ACK for the data block B1 ₁. Once an ACK is received, that processor P1 _(B) is “released” for processing another data block. The scheduler will assign the processor P1 _(B) another data block if available.

[0005] As graphically illustrated in FIG. 1, the scheduler knows of the release of the processor P1 _(B) by receiving the ACK/NACK, or may use some other signaling scheme that is well known in the art.

[0006] Once the receiving H-ARQ processors P1 _(UE)-P5 _(UE) process each data block, they are forwarded to the reordering buffers R₁, R₂, R₃ based on their priority; one reordering buffer for each priority level of data. For example, Priority 1 data block B1 ₁-B1 _(N) will be received and reordered in the Priority 1 reordering buffer R₁; Priority 2 data blocks B2 ₁-B2 _(N) will be received and reordered in the Priority 2 reordering buffer R₂; and the Priority 3 data blocks B3 ₁-B3 _(N) will be received and reordered by the Priority 3 reordering buffer R₃. Due to the pre-processing of the data blocks by the receiving H-ARQ processors P1 _(UE)-P5 _(UE) and the ACK/NACK acknowledgement procedure, the data blocks are often received in an order that is not sequential with respect to their TSNs. The reordering buffers R₁-R₃ receive the out-of-sequence data blocks and attempt to reorder the data blocks in a sequential manner prior to forwarding onto the RLC layer. For example, the Priority 1 reordering buffer R₁ receives and reorders the first four Priority 1 data blocks B1 ₁-B1 ₄. As the data blocks are received and reordered, they will be passed to the RLC layer.

[0007] On the receiving side, the UE MAC-hs, (which has been graphically illustrated as MAC-hs control), reads the H-ARQ processor ID, whether it is sent on a control channel such as the HS-SCCH or whether the data block has been tagged, to determine which H-ARQ processor P1 _(UE)-P5 _(UE) has been used. If the UE receives another data block to be processed by the same H-ARQ processor P1 _(UE)-P5 _(UE), the UE knows that that particular H-ARQ processor P1 _(UE)-P5 _(UE) has been released regardless of whether or not the previous data block processed by that H-ARQ processor P1 _(UE)-P5 _(UE) has been successfully received or not.

[0008] This process has several drawbacks that can cause a reordering buffer to “stall;” whereby the reordering buffer continues to wait for a data block which may never be transmitted. For example, referring to the Priority 2 reordering buffer R₂, the third data block B2 ₃ is missing. Using the current process, the reordering buffer R₂ will initiate a timer when the subsequent data block B2 ₄ is received. The reordering buffer R₂ will wait a predetermined duration as set by the timer to receive the missing data block B2 ₃ until the timer “times out.” If it does not receive that data block after the “time out,” it forwards the data blocks B2 ₁-B2 ₄, as well as subsequent data blocks up to the first missing data block, to the RLC layer. The RLC layer can then perform higher level processing to recover the missed data block.

[0009] There are several scenarios which increase the probability of reorder buffer stalling. For example, there are scenarios that data blocks of higher priority preempt data blocks of lower priority in H-ARQ transmissions; in this case, a H-ARQ process is released to serve a data block of higher priority regardless of whether the transmission of the data block of lower priority is not successful. The reordering buffer cannot tell whether a missing data block has been preempted by a higher priority data block or whether the data block is still in H-ARQ transmission. For example, the Priority 2 reordering buffer R₂ does not know whether its third data block B2 ₃ was preempted by one of the Priority 1 data blocks B1 ₁-B1 ₄ or whether its data block B2 ₃ is still in transmission. Where its third data block B2 ₃ was preempted and no data block was received with the same H-ARQ processor as that of the data block B2 ₃ within the predetermined duration, the Priority 2 reordering buffer R₂ must wait the entire timeout period before forwarding the information to upper layers for further processing.

[0010] A second scenario which increases the probability of stalling occurs during low to medium load conditions. When the UE is receiving a lower volume of data blocks, the new incoming data blocks are slow to flush the reordering buffer. For example, referring to the Priority 3 reordering buffer R₃, the reordering buffer R₃ does not know the status of the next data block B3 ₄, It may have been preempted by a higher priority data block, the transmission of the data block B3 ₄ may have failed or data block B3 ₃ may be the last data block in the sequence of data blocks B3 ₁-B3 _(N) If the data block B3 ₅ is received before data block B3 ₄, a timer is initiated. However, if low to medium load conditions are present or the data is at the end of a file transfer, there are no more data blocks that may use the same H-ARQ processor as B3 ₄,. The UE will have difficulty determining whether B3 ₄ is abandoned. In this case, the Priority 3 reordering buffer R₃ must wait the entire “timeout period” before forwarding the information to upper layers for further processing.

[0011] Finally, since the air interface is not completely reliable, a NACK, which is somehow transformed or interpolated as an ACK by the transmitting H-ARQ processors P1 _(B)-P5 _(B) will mean that the transmission of the particular data block has failed and will not subsequently be re-transmitted. The reordering buffers R₁-R₃ do not know of this miscommunication and the lost data block. The reordering buffers will again become stalled waiting for a timer to indicate the occurrence of a missing data block.

[0012] Although these scenarios are somewhat alleviated by the MAC-hs layer which instructs the particular reordering buffer R₁-R₃ to forward data to higher layers when a receiving H-ARQ processor P1 _(UE)-P5 _(UE) has been released, this is only a minimal improvement.

SUMMARY OF THE INVENTION

[0013] The present invention uses a Last-In-First-Out (LIFO) policy for loading the transmitting H-ARQ processors. A scheduler assigns the next sequential data block to the most recently released H-ARQ processor. The LIFO loading policy increases the probability that the UE will be able to determine at an earlier time whether the missed TSN is due to delay in retransmission or due to the release of a transmission by the Node B by reading the new H-ARQ processor identifier (ID). Once the UE MAC-hs receives a new TSN with the same H-ARQ processor ID, the missed data block with the old TSN is forwarded to the higher layer processes to take the appropriate action for data block recovery.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 is simplified block diagram of the data flow between a Node B and a UE.

[0015] FIGS. 2A-2C are block diagrams showing the scheduling of data blocks between different transmit H-ARQ processors.

[0016] FIGS. 3A-3E are block diagrams illustrating the scheduling of transmit processors in a LIFO scheduling policy.

[0017]FIG. 4 is a block diagram of the receiving H-ARQ process in the UE.

[0018]FIG. 5 is a method of processing a data block in accordance with the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019] The preferred embodiments will be described as referenced to the drawing figures where like numerals represent like elements throughout.

[0020] Referring to FIG. 2A, it is shown the H-ARQ processors on the transmitting side TQ₁-TQ₅ (hereinafter “transmit processors”). Although five (5) transmit processors TQ₁-TQ₅ are shown, it should be understood by those skilled in the art that any number of transmitting processors could be used in accordance with the teachings of the present invention.

[0021] An input buffer IB feeds protocol data units 1−N into the transmit H-ARQ processors TQ₁-TQ₅ through a scheduler(s). As will be explained in further detail hereinafter, the schedulers provides overall control regarding to which processor TQ,-TQ₅ a data block is routed. It should also be understood that although the present invention will be explained with reference to functional blocks in the figures, some functions of the invention are implemented in hardware while others are implemented in software. Accordingly, the present invention should not be specifically limited to discrete components shown in the figures. For example, although the MAC-hs control is graphically illustrated in FIG. 4 as a distinct entity, it is actually implemented as the MAC-hs software layer in the UE.

[0022] After a data block is scheduled to be processed by a particular transmit processor TQ₁-TQ₅, each data block is associated with a processor ID which identifies which processor TQ₁-TQ₅ has processed the data block. This identification may be in the form of a tag as shown in FIG. 4 or may comprise control channel signaling, (such as on the HS-SCCH channel), which is signaled from the Node B to the UE. The transmit processors TQ₁-TQ₅ process the data blocks in accordance with H-ARQ processes which are well known in the art. As such, the H-ARQ process will only be explained herein to the extent necessary to explain the present invention.

[0023] As each data block is processed by a transmit processor TQ-TQ₅, it is received by a corresponding processor on the receiving side RQ₁-RQ₅ (hereinafter receiving processors). For example, data block 2 is being processed by the second transmit processor TQ₂, which awaits an ACK or a NACK from its corresponding receive processor RQ₂, (shown in FIG. 4). If the transmit ARQ processor TQ₂ receives a NACK, it re-transmits the data block. If it receives an ACK, that processor TQ₂ is released to accept a new data block from the schedulers. This is graphically illustrated in FIG. 2B, wherein the second transmit processor TQ₂ is released after receiving an ACK from the receive processor RQ₂. Accordingly, the second transmit processor TQ₂ is able to accept and process the next data block; data block 6.

[0024] Simultaneously, all of the other transmit H-ARQ processors TQ₁, TQ₃, TQ₄, and TQ₅ continue to process their respective data blocks 1, 3, 4 and 5 until they receive an ACK. Referring to FIG. 2C, the second transmit H-ARQ processor TQ₂ receives an ACK regarding data block 6 and then the third transmit processor TQ₃ receives an ACK regarding data block 3. Since the third transmit processor TQ₃ was released last, (i.e., the second transmit H-ARQ processor TQ₂ was released first and then the third transmit processor TQ₃ was released), in accordance with the present invention the third transmit processor TQ₃ will receive the next data block; in this case, data block 7. The second transmit processor TQ₂ will receive the next data block; in this case, data block 8.

[0025] Referring to FIGS. 3A-3E, the scheduling of transmit processors TQ₁-TQ₅ is graphically illustrated as a buffer. However, it should be noted that there may be many physical ways of implementing a LIFO policy. The LIFO scheduling policy dictates that the last processor that has been released will be the first processor to be used next. In the example shown in FIG. 3A, the processors were released in the following order: first TQ₄, then TQ₂, then TQ₅ and then TQ₁. Accordingly, the processors will be assigned using a LIFO policy which dictates that TQ₁, will be assigned first followed by TQ₅, TQ₂, and TQ₄. Referring to FIG. 3B, once TQ₁ is assigned, TQ₅ is the next processor to be used as shown in FIG. 3C and then TQ₂, followed by TQ₄. However, this process is dynamic. As shown in FIG. 3D, TQ₁ may have been re-released before TQ₂ and TQ₄ are assigned. Accordingly, in accordance with the LIFO policy, TQ₁ will be assigned as shown in FIG. 3E prior to TQ₂ and TQ₄.

[0026] Referring to FIG. 4, a receiver made in accordance with the present invention is shown. Although the receiver includes a plurality of receive processors RQ₁-RQ₅ and a plurality of reordering buffers RB₁-RB₃, the receive processors RQ₁-RQ₅ and buffers RB₁ and RB₃ are scheduled and released in a different manner than the prior art as will be explained in detail hereinafter.

[0027] As each receive processor RQ₁-RQ₅ receives a data block, it processes the data block and sends an ACK or a NACK as appropriate, (as is performed in the prior art). Once a data block has been determined to be free from error, it is forwarded to the appropriate reordering buffer RB₁-RB₃. For example, data blocks 1, 2, 3 and 4 have been forwarded to the Priority 1 reordering buffer RB₁.

[0028] The H-ARQ processor ID is forwarded along with the data block. The H-ARQ processor ID is reviewed by the receiving MAC-hs to determine which transmit processor TQ₁-Q₅ was used prior to transmission, and thus which corresponding receive processor RQ₁-RQ₅ should process the data block. The H-ARQ processor ID can also be used by the MAC-hs to tell whether an H-ARQ receiving processor RQ₁-RQ₅ has been released, regardless of whether or not a data block is received successfully.

[0029] The MAC-hs control can use the H-ARQ processor ID to determine whether or not a missing data block (i.e. a missing TSN) is due to a failed transmission due to a problem with the priority level of the data. For example, referring to FIG. 4, in the Priority 2 reordering buffer RB₂, data block 6 is missing. Since the MAC-hs control knows via the processor ID that data block 6 was processed by the second receive processor RQ₂, when data block 7 is received and its processor ID states that it was processed by the second receive processor RQ₂, the MAC-hs control knows that the second receive processor RQ₂ will not be forwarding data block 6 since it has already processed a subsequent data block; (i.e. data block 7). Data blocks 5 and 7 will be forwarded to the RLC layer without further delay for error correcting and processing. Accordingly, once the UE MAC-hs receives a new TSN with the same process identity, the missing data block with the old TSN is forwarded to higher layers to let the higher layers react to the missing data block. As aforementioned, the transmit processors TQ₁-TQ₅ and the receive H-ARQ processors RQ₁- RQ₅, will be scheduled in accordance with the LIFO scheduling policy.

[0030] The present invention reduces the average latency of reordering buffers which are stalled, by reducing the average time interval from the scheduling of a data block to an H-ARQ process to the time the same H-ARQ process is free to process another data block. Therefore, the MAC-hs control can detect a missing data block earlier by reading the H-ARQ process ID of subsequent data block(s) and correlating the TSNs of the data blocks.

[0031] The invention is most effective when only some of the H-ARQ processes are utilized. For example, referring to FIGS. 3A-3E, if the data block assigned to TQ₁ in FIG. 3D is missing, without the present invention the schedulers may choose TQ₅ for the next data block and wait until the timer expires to forward any subsequent in-sequence delivery data blocks to higher layers. In contrast, with the present invention, TQ₁ is assigned the next data block and the MAC-hs control can earlier detect that the previous data block is missing since the same H-ARQ process ID is received and the MAC-hs control can then react appropriately.

[0032] The present invention impacts current communication systems in two ways. On the transmitting side, the system requires a LIFO in the scheduling policy; which is typically implemented in the scheduling/priority handling entity in the Node B MAC-hs. The transmitting side will maintain the status of the releasing order of H-ARQ processors such that LIFO characteristics are achieved. The LIFO policy should be coordinated with an existing functionality on the receiving side. On the receiving side, incoming data blocks in the reordering buffers will be examined. If there is a missing data block, forwarding of data blocks to higher layers will only be permitted upon the receipt of a new TSN with the same processor ID as the missing data block.

[0033] Referring to FIG. 5, a method 10 of processing a data block in accordance with present invention is shown. The method 10 commences with a scheduler receiving prioritized data blocks (step 12). The scheduler then schedules each data block with a transmitting H-ARQ processor; whereby the most recently released processor is scheduled first (step 14). This implements the LIFO scheduling policy. Next, an identification of the scheduled H-ARQ transmit processor is provided for each data block (step 16). As aforementioned, this may be provided with each data block, or may be signaled separately from the data block. Each data block is processed with its scheduled transmitting H-ARQ processor (step 18) and is then transmitted with the processor ID (step 20). On the receiving end, each data block is processed with the receive processor corresponding to the scheduled transmit processor (step 22). The properly received data blocks are reordered in accordance with their priority (step 24).

[0034] The present invention results in optimization performance since the average latency of reordering buffers which are stalled will be reduced, and the reordering buffers will less likely to stall while waiting for subsequent data blocks which will never be received.

[0035] Although the present invention has been described in detail, it is to be understood that the invention is not limited thereto, and that various changes can be made therein without departing from the spirit and scope of the invention, which is defined by the attached claims. 

What is claimed is:
 1. A system for transmitting a plurality of data streams, each of said plurality of data streams having a sequence of data blocks, the system comprising: a plurality of H-ARQ transmit processors, each for processing a data block for transmission; a scheduler, for receiving said data streams, for assigning data blocks to one of said plurality of HARQ transmitting processors and for associating a process identity to each of said plurality of data blocks, the process identity corresponding to the H-ARQ transmit processor which processes the data block; a plurality of H-ARQ receive processors, each for receiving a data block from a corresponding H-ARQ transmit processor and for acknowledging the receipt of a data block to said corresponding H-ARQ transmit processor; and a plurality of reordering processors, each for ensuring the sequence of blocks for at least one of said data streams, whereby an H-ARQ transmit processor is released once it has processed a data block without errors and said scheduler schedules the most recently released H-ARQ transmit processor first.
 2. The system of claim 1 wherein the reordering processors detect said process identities of each data block to determine if there are missing data blocks.
 3. The system of claim 2 wherein said scheduler assigns a sequential transmission sequence number (TSN) relating to said sequence.
 4. The system of claim 2 wherein a missing data block is detected when the received TSNs are not sequential.
 5. The system of claim 4, further including a controller, which determines whether a missing data block is a failed transmission or a delayed transmission.
 6. The system of claim 5, whereby failed transmission is determined if an H-ARQ receive processor process a subsequent data block.
 7. The system of claim 1 wherein each said process identity is a tag associated with each of said plurality of data blocks.
 8. The system of claim 1 wherein each said process identity comprises data transmitted via a separate control channel.
 9. The system of claim 1 whereby the data blocks are transmitted over a high speed downlink shared channel.
 10. A method for avoiding stalls in an H-ARQ reordering buffer of a receiver, comprising: receiving a plurality of data blocks in a predetermined sequence; scheduling each of said plurality of data blocks to be processed by one of a plurality of transmit H-ARQ processors; associating an identification of each transmit H-ARQ processor with each data block that the transmit H-ARQ processor processes; transmitting each data block along with its associated identification; reordering each of a plurality of data blocks according to said sequence; and releasing a transmit H-ARQ processor for subsequent scheduling when the data block it is processing is successfully transmitted; whereby the most recently released transmit H-ARQ processor is scheduled first.
 11. The method claim 10 wherein the reordering step further includes determining when a data block is out of sequence.
 12. The method of claim 10 wherein said identification is sent via a control.
 13. The system of claim 10 wherein said identification is a tag that is sent with said data block. 